package com.zhiyin.seal.service;

import com.zhiyin.seal.entity.bo.*;

import java.util.List;

/**
 * 印章服务
 */
public interface SealService {

    SealBo getSeal(Long id);

    SealBo getSealByIdAndCompany(Long id,Long companyId);

    SealBo getSealByMac(String mac);

    List<SealBo> getAllSealList(String keywords);

    List<SealBo> getSealListByIdsAndCompany(List<Long> sealIds,Long companyId);

    List<SealBo> getCompanySealList(Long companyId);

    List<SealBo> getCompanySealList2(Long companyId);

    List<SealBo> getApplySealList(Long userId);

    List<SealBo> getMySealList(Long userId);

    Boolean addSeal(SealBo sealBo);

    Boolean addSealCompany(SealBo sealBo);

    Boolean updateSeal(SealBo sealBo);

    Boolean addSealReplace(SealReplaceBo sealReplaceBo);

    SealReplaceBo getSealReplaceByMac(String mac);

    Boolean updateSealServiceTime(Long sealId,String serviceTime);

    Boolean updateSealName(Long sealId,String name);

    Boolean updateSealForcePhotograph(Long sealId,Boolean forcePhotograph);

    Boolean updateSealFacePhoto(Long sealId,Boolean facePhoto);

    Boolean updateSealDepartment(Long sealId,Long departmentId);

    Boolean updateSealStatus(Long sealId,Integer status);

    Boolean removeSealCompany(Long userId,Long sealId);

    Boolean removeSealCompanyBySealId(Long sealId);

    Boolean removeCompanyAllSeal(Long companyId);

    Boolean uploadAlarmRecord(AlarmRecordBo alarmRecordBo);

    Boolean removeSealAdmin(Long sealId);

    List<SealFingerPrintBo> getFingerprintList(Long companyId, Long sealId);

    Boolean registerFingerprint(SealFingerPrintBo sealFingerPrintBo);

    Boolean modifyFingerprint(SealFingerPrintBo sealFingerPrintBo);

    Boolean removeFingerprint(Long id,Long deleteUser);

    Integer getSealCount();

    void buildSealIdsByAlarmRecordList(List<AlarmRecordBo> alarmRecordBoList,List<Long> sealIds);

    void buildSealIdsByElectronicFenceList(List<ElectronicFenceDetailBo> electronicFenceDetailBoList, List<Long> sealIds);
}
